#include <memory>
#include <torch/script.h>

namespace bart {
class BartClassifier {
private:
  /* data */
  torch::jit::script::Module bart_classifier;

public:
  static std::string model_path;
  static std::shared_ptr<BartClassifier> classifier;
  BartClassifier(/* args */) = delete;
  BartClassifier(const std::string &model_path);
  static std::shared_ptr<BartClassifier>
  getInstance(const std::string &model_path);
  at::Tensor getPossibility(const std::vector<int> &encoding);
  ~BartClassifier();
};
} // namespace bart